home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / T9440FIX.ZIP / T9440FIX.ASM < prev    next >
Encoding:
Assembly Source File  |  1995-10-15  |  6.5 KB  |  204 lines

  1.  
  2. .286
  3. Print              MACRO Symbol
  4.                    MOV AH,09h
  5.                    MOV DX,OFFSET Symbol
  6.                    INT 21h
  7. ENDM
  8.  
  9. Int10              SEGMENT
  10.                    ORG 100h
  11.                    ASSUME CS:Int10
  12. Start:             JMP Installation
  13.  
  14. Save10             LABEL DWORD
  15. Int10Ofs           WORD ?
  16. Int10Seg           WORD ?
  17. IDString           DB "T!" ; a little string to recognize myself ;-)
  18.  
  19. NewInt10           PROC FAR
  20.  
  21.                    CMP  AX,4F02h
  22.                    JE   VesaTest
  23.  
  24.                    JMP  LetsGo
  25.  
  26. ; Boost VESA modes (even SciTech's ones !)
  27.  
  28. VesaTest:          PUSH BX
  29.                    AND  BX,1FFh
  30.  
  31.                    CMP  BX,10dh ;320x200x32k
  32.                    JE   bit_15
  33.                    CMP  BX,12fh ;360x200x32k
  34.                    JE   bit_15
  35.                    CMP  BX,12dh ;320x240x32k
  36.                    JE   bit_15
  37.                    CMP  BX,130h ;360x240x32k
  38.                    JE   bit_15
  39.                    CMP  BX,12eh ;320x400x32k
  40.                    JE   bit_15
  41.                    CMP  BX,131h ;360x400x32k
  42.                    JE   bit_15
  43.                    CMP  BX,11dh ;640x350x32k
  44.                    JE   bit_15
  45.                    CMP  BX,11eh ;640x400x32k
  46.                    JE   bit_15
  47.                    CMP  BX,110h ;640x480x32k
  48.                    JE   bit_15
  49.                    CMP  BX,113h ;800x600x32k
  50.                    JE   bit_15
  51.                    CMP  BX,116h ;1024x768x32k
  52.                    JE   bit_15
  53.                    CMP  BX,119h ;1280x1024x32k
  54.                    JE   bit_15
  55.  
  56.                    CMP  BX,10eh ;320x200x64k
  57.                    JE   bit_16
  58.                    CMP  BX,134h ;360x200x64k
  59.                    JE   bit_16
  60.                    CMP  BX,132h ;320x240x64k
  61.                    JE   bit_16
  62.                    CMP  BX,135h ;360x240x64k
  63.                    JE   bit_16
  64.                    CMP  BX,133h ;320x400x64k
  65.                    JE   bit_16
  66.                    CMP  BX,136h ;360x400x64k
  67.                    JE   bit_16
  68.                    CMP  BX,11fh ;640x350x64k
  69.                    JE   bit_16
  70.                    CMP  BX,120h ;640x400x64k
  71.                    JE   bit_16
  72.                    CMP  BX,111h ;640x480x64k
  73.                    JE   bit_16
  74.                    CMP  BX,114h ;800x600x64k
  75.                    JE   bit_16
  76.                    CMP  BX,117h ;1024x768x64k
  77.                    JE   bit_16
  78.                    CMP  BX,11ah ;1280x1024x64k
  79.                    JE   bit_16
  80.  
  81.                    CMP  BX,10fh ;320x200x16m
  82.                    JE   bit_24
  83.                    CMP  BX,137h ;320x240x16m
  84.                    JE   bit_24
  85.                    CMP  BX,138h ;320x400x16m
  86.                    JE   bit_24
  87.                    CMP  BX,121h ;640x350x16m
  88.                    JE   bit_24
  89.                    CMP  BX,122h ;640x400x16m
  90.                    JE   bit_24
  91.                    CMP  BX,112h ;640x480x16m
  92.                    JE   bit_24
  93.                    CMP  BX,115h ;800x600x16m
  94.                    JE   bit_24
  95.                    CMP  BX,118h ;1024x768x16m
  96.                    JE   bit_24
  97.                    CMP  BX,11bh ;1280x1024x16m
  98.                    JE   bit_24
  99.  
  100.                    ; else normal !!!
  101.                    POP  BX 
  102.  
  103. LetsGo:            JMP  OnlyCall
  104.  
  105. bit_15:            MOV  CS:[patch+1],4 ; 15/16 bits mode -> pixel depth
  106.                    MOV  CS:[patch2+1],010h ; 15 bit
  107.                    jmp  VasY
  108. bit_16:            MOV  CS:[patch+1],4 ; 15/16 bits mode -> pixel depth
  109.                    MOV  CS:[patch2+1],030h ; 16 bit
  110.                    jmp  VasY
  111. bit_24:            MOV  CS:[patch+1],8 ; 24 bits mode
  112.                    MOV  CS:[patch2+1],0D0h ; 24 bit
  113.  
  114.  
  115. VasY:              ; do my own stack frame ;-) !
  116.                    POP  BX
  117.  
  118.                    PUSHF
  119.                    PUSH CS
  120.                    PUSH OFFSET Adding
  121.  
  122. OnlyCall:          JMP Save10
  123.  
  124. Adding:            PUSH AX
  125.                    PUSH DX
  126.  
  127.                    MOV  DX,3C8h          ; active DAC
  128.                    IN   AL,DX            ; reset to normal mode
  129.                    MOV  DX,3C6h
  130.                    IN   AL,DX
  131.                    IN   AL,DX
  132.                    IN   AL,DX
  133.                    IN   AL,DX
  134. patch2 LABEL BYTE
  135.                    MOV  AL,010h
  136.                    OUT  DX,AL            ; new value
  137.                    MOV  DX,3C8h
  138.                    IN   AL,DX            ; back to normal mode
  139.  
  140.                    MOV  DX,3D4h          ; set pixel depth !!!
  141.                    MOV  AL,38h
  142.                    OUT  DX,AL
  143.                    INC  DL
  144.                    IN   AL,DX
  145.                    AND  AL,NOT(4+8)
  146. patch LABEL BYTE
  147.                    OR   AL,4
  148.                    OUT  DX,AL
  149.  
  150.                    POP  DX
  151.                    POP  AX
  152.          
  153.                    IRET
  154.  
  155. NewInt10           ENDP
  156.  
  157. EndOfResident:
  158.  
  159. ; Hey this looks like some Sam'code ;-) !!!!
  160.  
  161. Copyright          DB "Trident 9440AGi fix for UniVBE 5.1a!",10,13
  162.                    DB "Coded by Type One 1995 - $"
  163. Install            DB "INSTALLED",10,13,"$"
  164. Remove             DB "REMOVED",10,13,"$"
  165.  
  166. installation:      MOV AX,CS 
  167.                    MOV DS,AX
  168.                    Print Copyright
  169.                    MOV AX,3510h ; routine déjà en mem ?
  170.                    INT 21h
  171.                    CMP WORD PTR ES:[BX-2],"!T"
  172.                    JNE PutInMem ; non
  173.                    Print Remove
  174.                    MOV AX,ES:Int10Seg ; ES % au prg en mem
  175.                    MOV DS,AX
  176.                    MOV AX,2510h
  177.                    MOV DX,ES:Int10Ofs
  178.                    INT 21h ; restaure ancien gestionnaire
  179.                    MOV BX,ES
  180.                    MOV ES,ES:[2Ch]
  181.                    MOV AH,49h
  182.                    INT 21h ; libère l'environnement
  183.                    MOV ES,BX
  184.                    MOV AH,49h
  185.                    INT 21h ; libère le prog
  186.                    MOV AX,4C00h
  187.                    INT 21h ; fin
  188.  
  189. PutInMem:          Print Install
  190.                    MOV Int10Ofs,BX ; sauve l'ancien gestionnaire
  191.                    MOV Int10Seg,ES
  192.                    MOV AX,2510h 
  193.                    MOV DX,OFFSET NewInt10
  194.                    INT 21h ; met mon gestionnaire en place
  195.                    MOV DX,EndOfResident-Start+100h+15 ; = l'age du capitaine
  196.                    MOV CL,4
  197.                    SHR DX,CL
  198.                    XOR AL,AL
  199.                    MOV AH,31h
  200.                    INT 21h ; fin et rester résident
  201.  
  202. Int10              ENDS
  203.                    END Start
  204.